Aquí está mi código
const {getAudioUrl} = require("google-tts-api") const langlist = ["en", "id"] let language = args[0] if(langlist.find(c => c === language)) { if(!language) return message.reply("Please enter the language") if(!args[1]) return message.reply("Please enter the text") const text = args.slice(1).join(" ") if(text.length > 200) return message.reply('You cant input a text with over 200 characters') const voiceChannel = message.member.voice.channel if(!voiceChannel) return message.reply(" Please enter a voice channel") const audioURL = await getAudioUrl(text, { lang: language, slow: false, host: 'https://translate.google.com', timeout: '150000' }) try { voiceChannel.join().then(connection => { const dispatcher = connection.play(audioURL) dispatcher.on('finish', () => { voiceChannel.leave() }) }) } } else { return message.reply(`That language is not supported, the current supported language : [${langlist.join(", ")}]`); } catch(err){ console.log(err) message.channel.send("There is an error")} } }Estoy buscando en Internet, pero su problema si el intento no tiene captura, pero ya tengo uno.
Su instrucción catch está fuera del bloque if que tiene el bloque try . Esto es lo que hice para corregir el error:
catch más cerca del try .} que estaban causando errores.Aquí está el código:
const {getAudioUrl} = require("google-tts-api") const langlist = ["en", "id"] let language = args[0] if(langlist.find(c => c === language)) { if(!language) return message.reply("Please enter the language") if(!args[1]) return message.reply("Please enter the text") const text = args.slice(1).join(" ") if(text.length > 200) return message.reply('You cant input a text with over 200 characters') const voiceChannel = message.member.voice.channel if(!voiceChannel) return message.reply(" Please enter a voice channel") const audioURL = await getAudioUrl(text, { lang: language, slow: false, host: 'https://translate.google.com', timeout: '150000' }) try { voiceChannel.join().then(connection => { const dispatcher = connection.play(audioURL) dispatcher.on('finish', () => { voiceChannel.leave() }) }) } catch(err){ console.log(err) message.channel.send("There is an error") } } else { return message.reply(`That language is not supported, the current supported language : [${langlist.join(", ")}]`); }Un consejo para evitar este tipo de error: ¡sangría correctamente!
Si hubiera sangrado todo su código, habría sido mucho más fácil de leer y, por lo tanto, encontrar el error habría sido muy rápido (y ni siquiera tendría que preguntarle a Stack Overflow).
“Los programas deben estar escritos para que la gente los lea, y solo de manera incidental para que las máquinas los ejecuten”. -Harold Abelson
Si hace que su código sea más fácil de leer, depurar, reescribir, mantener, comprender, etc. será mucho más fácil, para usted y para todos los demás.